<?php
/**
 *	Copyright (c) TeamFlamingo And gray 2004-2009
 *	www.me-live.cn / www.i-gray.cn
 *
 *	[ WARNING!!! ] This is a freeware!
 *	[ WARNING!!! ] But, You MUST get author's authorization before using it!
 *
 *	Name : init.php / Development Code Evolve
 *	Created / Modify : 2009-9-23 / 2010/6/16
 */

	$PHP_SELF	=	$_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME'];
	if ( eregi( "init.php", $PHP_SELF ) )
	{
		Header( "HTTP/1.0 404 Not Found" );
		exit();
	}

	error_reporting( E_ALL );
	@set_magic_quotes_runtime( 0 );

	$HostName			=	'localhost';
	$HostCnName			=	'WorldEditor';
	$HostUrl			=	'http://localhost/WorldEditor';

	define( 'IN_TEAME', true );

	//	[CH]	定义系统目录
	define( 'ME_ROOT', dirname( __FILE__ ) );
	define( 'ME_APP', ME_ROOT . '/app' );
	define( 'ME_CORE', ME_ROOT . '/kernel' );
	define( 'ME_SYSTEM', ME_ROOT . '/u' );

	//	[CH]	定义COOKIE作用域
	define( 'ME_COOKIE_PATH', '/' );

	//	[CH]	定义缓存目录
	define( 'ME_CACHE_DIR', ME_APP . '/__Cache' );
	define( 'ME_CACHE_LIFE', 10 );

	//	[CH]	定义存档
	define( 'ME_ARCHIVE_DIR', ME_APP . '/__Archive' );
	define( 'ME_ARCHIVE_LIFE', 10 );

	//	[CH]	定义每页允许显示的包括回复的文章数
	define( 'ME_MAXPOSTSNUMBER', 10 );
	//	[CH]	定义板块页面允许显示的文章数
	define( 'ME_MAXFORUMNUMBER', 20 );
	//	[CH]	定义允许显示的页码数
	define( 'ME_MAXPAGENUMBER', 10 );

	//	[CH]	默认字符串截取长度
	define( 'ME_DEFAULT_STRING_LENGTH', 600 );

	//	[CH]	定义板块缓存时间
	define( 'ME_BOARD_CACHE_FILE', ME_CACHE_DIR . '/__board.c.php' );
	define( 'ME_BOARD_CACHE_LIFE', 15768000 );

	//	[CH]	置顶文章信息的缓存
	define( 'ME_FORUM_CACHE_FILE', ME_CACHE_DIR . '/__forum.c.php' );
	//define( 'ME_FORUM_CACHE_LIFE', 15768000 );

	//	[CH]	定义斑竹信息的缓存文件
	define( 'ME_FORUM_ADMIN_CACHE_FILE', ME_CACHE_DIR . '/__forum.admin.c.php' );

	//	[CH]	用户验证模式
	define( 'ME_FORCE_AUTH', TRUE );
	define( 'ME_TIME_OUT', 3600 );

	//	[CH]	搜索引擎设定
	define( 'ME_ALLOW_ROBOT', TRUE );
	define( 'ME_ROBOT_DIR', ME_APP . '/__Robot' );

	//	[CH]	系统维护状态的判断文件
	define( 'ME_APP_LOCK', './system.lock' );
	define( 'ME_APP_LOCK_INFO', '系统升级中,请稍候访问...' );

	//	[CH]	天气预报缓存文件
	define( 'ME_WEATHER_CACHE', ME_CACHE_DIR . '/__weather.c.php' );

	//	[CH]	Memcached服务设置
	//	[CH]	这里需要做一下判断,因为个别服务器的整合包会包含这些定义
	if( !defined( 'MEMCACHE_SERIALIZED' ) )
		define( "MEMCACHE_SERIALIZED", 1 << 0 );
	if( !defined( 'MEMCACHE_COMPRESSED' ) )
		define( "MEMCACHE_COMPRESSED", 1 << 1 );
	if( !defined( 'COMPRESSION_SAVINGS' ) )
		define( "COMPRESSION_SAVINGS", 0.20 );

	//	[CH]	Memcached客户端设置
	define( "ME_MEMCACHED_START", false );							//	[CH]	是否启用Memcached
	define( "ME_MEMCACHED_SERVERS", '127.0.0.1:11211' );
	define( "ME_MEMCACHED_DEBUG", false );
	define( "ME_MEMCACHED_COMPRESS", 12400 );
	define( "ME_MEMCACHED_PERSISTANT", true );

	//	[CH]	Memcached Key定义
	define( "ME_POSTS_TOPS_RESULT_KEY", 'postsTopsResultKey' );		//	[CH]	置顶文章的Key
	define( "ME_POSTS_TOTAL_KEY", 'postsTotalKey' );				//	[CH]	文章总数的Key
	define( "ME_POSTS_RESULT_KEY", 'postsResultKey' );				//	[CH]	文章列表的Key

	//	[CH]	数据库连接方式
	define( "ME_DB_PCONNECT", false );			//	[CH]	是否采用'持续连接方式'连接数据库

	//	[CH]	数据库服务器地址
	$MysqlServerName	=	"localhost";
	//	[CH]	数据库用户名
	$MysqlUserName		=	"root";
	//	[CH]	数据库密码
	$MysqlPassword		=	"password";
	//	[CH]	数据库名称
	$MysqlDatabase		=	"WorldEditor";
	//	[CH]	数据库前缀
	$TablePre			=	"mdk_";

	/**
	 *	Node
	 *	关于系统维护的思路
	 *	首先判断 system.lock 文件是否存在
	 *	如果存在 则 将页面跳转至 系统维护页面
	 *
	 *	系统维护页面
	 *		需要制作一个模板
	 *		将自定义的 维护信息 从数据库中写入模板文件
	 *		如果数据库中不存在 维护信息 则直接使用常量
	 */

	function getCurrentTime ()
	{
		$array	=	array();
		$array	=	explode( ' ', microtime() );
		return $array[1] + $array[0];
	}

	function getMeInt ( $value )
	{
		return intval( trim( $value ) );
		//return	intval( preg_replace( "/\D+/", '', trim( $value ) ) );
	}

	function getMeHash ( $str )
	{
		$_SESSION['requestTime']	=	isset( $_SESSION['requestTime'] ) ? $_SESSION['requestTime'] : mt_rand( 0, time() );
		return	substr( md5( $str.substr( session_id(), 2, 6 ) . $_SESSION['requestTime'] ), 6, 12 );
	}

	function getMCHash( $str )
	{
		return	substr( md5( $str ), 2, 24 );
	}

	function	getUserIp()
	{
		if(getenv('HTTP_CLIENT_IP')&&strcasecmp(getenv('HTTP_CLIENT_IP'),'unknown'))
		{
			$ip	=getenv('HTTP_CLIENT_IP');
		}
		elseif(getenv('HTTP_X_FORWARDED_FOR')&&strcasecmp(getenv('HTTP_X_FORWARDED_FOR'),'unknown'))
		{
			$ip	=getenv('HTTP_X_FORWARDED_FOR');
		}
		elseif(getenv('REMOTE_ADDR')&&strcasecmp(getenv('REMOTE_ADDR'),'unknown'))
		{
			$ip	=getenv('REMOTE_ADDR');
		}
		elseif(isset($_SERVER['REMOTE_ADDR'])&&$_SERVER['REMOTE_ADDR']&&strcasecmp($_SERVER['REMOTE_ADDR'],'unknown'))
		{
			$ip	=$_SERVER['REMOTE_ADDR'];
		}
		return	$ip;
	}

	function	MQGString( $array )
	{
		if( !get_magic_quotes_gpc() )
			return	is_array( $array ) ? array_map( 'addslashes', $array ) : addslashes( $array );
		else
			return	$array;
	}

	session_start();

	if( function_exists( 'ob_gzhandler' ) )
	{
        ob_start( 'ob_gzhandler' );
	}
	else
	{
		ob_start();
	}

	$appStartTime	=	getCurrentTime();
	$copyrightTime	=	date( 'Y' );

	$_GET			=	MQGString( $_GET );
	$_POST			=	MQGString( $_POST );
	$_COOKIE		=	MQGString( $_COOKIE );
	$_SESSION		=	MQGString( $_SESSION );
	//$_FILES			=	MQGString( $_FILES );
?>